﻿#define _CRT_SECURE_NO_WARNINGS 1;
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
#include "queue.h"

// Tree.h


// 先定义数据类型
typedef char TreeDataType;  // 确保这里有TreeDataType的定义

// 定义二叉树节点结构体
typedef struct TreeNode
{
    TreeDataType data;
    struct TreeNode* left;
    struct TreeNode* right;
} TNode;







//前序遍历
void perOrder(TNode* root);

//中序遍历
void inOrder(TNode* root);

//后序遍历
void postOrder(TNode* root);

// ⼆叉树结点个数
int BinaryTreeSize(TNode* root);

// ⼆叉树叶⼦结点个数
int BinaryTreeLeafSize(TNode* root);

// ⼆叉树第k层结点个数
int BinaryTreeLevelKSize(TNode* root, int k);

//⼆叉树的深度/⾼度
int BinaryTreeDepth(TNode* root);

// ⼆叉树查找值为x的结点
TNode* BinaryTreeFind(TNode* root, TreeDataType x);

// ⼆叉树销毁
void BinaryTreeDestory(TNode** root);

//层序遍历
void leveOrder(TNode* root);


